<?php
header('Content-Type: text/plain; charset=utf-8');

$ffmpeg_path = '/usr/local/bin/ffmpeg';
// $ffmpeg_path = '/root/miniconda3/envs/myenv/bin/ffmpeg';

echo "=== 详细诊断信息 ===\n\n";

// 1. 检查文件基本信息
echo "1. 文件基本信息:\n";
echo "   路径: $ffmpeg_path\n";
echo "   是否存在: " . (file_exists($ffmpeg_path) ? '是' : '否') . "\n";
echo "   是否可读: " . (is_readable($ffmpeg_path) ? '是' : '否') . "\n";
echo "   是否可执行: " . (is_executable($ffmpeg_path) ? '是' : '否') . "\n";

// 2. 检查权限详细信息
clearstatcache();
$perms = fileperms($ffmpeg_path);
echo "   权限: " . substr(sprintf('%o', $perms), -4) . "\n";
echo "   大小: " . filesize($ffmpeg_path) . " 字节\n";

// 3. 检查open_basedir配置
echo "\n2. PHP配置检查:\n";
echo "   open_basedir: " . ini_get('open_basedir') . "\n";
echo "   safe_mode: " . ini_get('safe_mode') . "\n";
echo "   disable_functions: " . ini_get('disable_functions') . "\n";

// 4. 检查当前用户和环境
echo "\n3. 运行环境检查:\n";
echo "   PHP用户ID: " . getmyuid() . "\n";
echo "   当前目录: " . getcwd() . "\n";

// 5. 尝试不同的执行方式
echo "\n4. 不同执行方式测试:\n";

// 方式1: 使用绝对路径
echo "   方式1 (绝对路径): ";
exec("$ffmpeg_path -version 2>&1", $output1, $return1);
echo "返回码: $return1\n";

// 方式2: 使用相对路径
echo "   方式2 (相对路径): ";
chdir('/www/wwwroot/tbbs-api.chinesemir.com/bin');
exec("./ffmpeg -version 2>&1", $output2, $return2);
echo "返回码: $return2\n";

// 方式3: 使用shell_exec
echo "   方式3 (shell_exec): ";
$output3 = shell_exec("$ffmpeg_path -version 2>&1");
echo $output3 ? "成功" : "失败";
echo "\n";

// 方式4: 检查系统PATH
echo "   方式4 (系统PATH): ";
$output4 = shell_exec("which ffmpeg 2>&1");
echo $output4 ?: "未找到";
?>
